<?php

class AzioniController extends Zend_Controller_Action {

    public function init() {
        /* Initialize action controller here */
    }

    public function indexAction() {
        // action body
    }

    /**
     * Questa azione crea il verbale di accertamento
     *
     *
     *
     *
     */
    public function verbaleDiAccertamentoAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_VerbaleDiAccertamento(array(
                        'id_admin' => $id,
                    ));

            $id_processo = $this->_getParam('id', 'nid');
            $this->view->id_processo = $id_processo;

            $id_azione = $this->_getParam('id_azione', 'nid');

            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            $flusso_obj = new Flusso_db();
            $accertamento = $flusso_obj->getDatiAccertmento($id_processo);

            /*
             * bottone di anteprima stampa, è = true solo
             * se è presente nel db, altriemtni non lo visualizzo
             */
            $this->view->anteprima = false;
            if ($accertamento) {

                $this->view->anteprima = true;

                $data_ora = explode(' ', $accertamento['data_ora']);
                $accertamento['data_accertamento'] = $data_ora[0];
                $accertamento['ora_accertamento'] = 'T' . $data_ora[1];

                $form->populate(array(
                    'id_accertamento' => $accertamento['id_accertamento'],
                    'numero_verbale' => $accertamento['numero_verbale'],
                    'data_accertamento' => $accertamento['data_accertamento'],
                    'ora_accertamento' => $accertamento['ora_accertamento'],
                    'motivo' => $accertamento['motivo'],
                    'evidenze' => $accertamento['evidenze'],
                    'id_lib_comune' => $accertamento['id_lib_comune'],
                    'indirizzo' => $accertamento['indirizzo']
                ));
            }

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_verbale_di_accertamento($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'verbale-di-accertamento');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo esegue le azioni di scrittura nel db ed esamina
     * la validità dei dati nel form
     *
     *  
     * manca il discorso unità locale
     * manca l'invio di id processo
     * manca la gestione id azione
     * + controlli
     *
     * @param type $values valori del form
     *
     *
     *
     *
     */
    protected function _process_verbale_di_accertamento($values) {

        // dati per accertamento
        $numero_verbale = $values['numero_verbale'];
        $data_accertamento = $values['data_accertamento'];
        $ora_accertamento = $values['ora_accertamento'];
        // aggiusto data e ora per scriverle sul db
        $data_ora = $data_accertamento . " " . substr($ora_accertamento, 1, strlen($ora_accertamento) - 1);
        $motivo = $values['motivo'];
        $evidenze = $values['evidenze'];
        $indirizzo = $values['indirizzo'];

        $id_unita_locale = intval($values['id_unita_locale']);
        $id_lib_comune = intval($values['id_lib_comune_accertamento']);
        //$id_lib_comune = intval($values['id_lib_comune']);

        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];

        // prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di accertamento
        $data_verbale_di_accertamento = array(
            "numero_verbale" => $numero_verbale,
            "data_ora" => $data_ora,
            "motivo" => $motivo,
            "evidenze" => $evidenze,
            "indirizzo" => $indirizzo,
            "id_lib_comune" => $id_lib_comune,
            "id_unita_locale" => $id_unita_locale,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo'];
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_verbale_di_accertamento['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_verbale_di_accertamento, 'accertamento');
        //var_dump($data_verbale_di_accertamento);
        //åvar_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    /**
     *  metodo al quale accede dopo avere creato il verbale di accertamento
     * per la stampa su pdf
     *
     *
     *
     *
     *
     */
    public function verbaleDiAccertamentoCreatoAction() {
        // action body
        //$this->_helper->_layout->setLayout('stampa');
        $id_processo = $this->_getParam('id', 'nid');
        $this->view->id_processo = $id_processo;
    }

    /**
     * Questo metodo crea il form del verbale di contestazione
     *
     *
     */
    public function verbaleDiContestazioneCreatoAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;

            $id_processo = $this->_getParam('id', 'nid');
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form = new Application_Form_VarDoc(array(
                        'id_admin' => $id,
                    ));

            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            $flusso_obj = new Flusso_db();
            //$var_doc = $flusso_obj->getDatiVarDoc($id_processo);
            $var_doc = false;
            if ($var_doc) {

                $form->populate(array(
                    'dichiarazioni' => $var_doc['dichiarazioni'],
                    'nomi_ispettori' => $var_doc['nomi_ispettori'],
                    'qualifica_ispettori' => $var_doc['importo'],
                    'numero_contestazione' => $var_doc['numero_contestazione'],
                ));
            }

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_var_doc($form->getValues())) {
                        //$urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        $this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Modulo salvato con successo.';
                        //$this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'verbale-di-contestazione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }

            $this->view->id_processo = $id_processo;
            $this->view->form = $form;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     *  Questo metodo gestiste il form verbale di contestazione
     * e scrive la action azione_eseguita
     *
     * manca id processo
     * manca id norma e id centro di costo sono da aggiustare
     * + controlli
     * aggiusta importo in euro
     * manca la gestione id azione
     *
     *
     *
     *
     */
    protected function _process_verbale_di_contestazione($values) {
        /** id_contestazione	int(10)		UNSIGNED	No	None	AUTO_INCREMENT	 	 	 	 	 	 	
          id_azione_eseguita	int(10)		UNSIGNED	No	None
          numero_contestazione	varchar(255)	utf8_general_ci		Yes	NULL
          data	date			No	None
          id_lib_norma	int(10)		UNSIGNED	No	None
          id_lib_centro_costo	int(10)		UNSIGNED	No	None
          importo	decimal(10,2)			Yes	NULL
          id_utente_creazione_record	int(10)		UNSIGNED	No	None
          id_utente_modifica_record	int(10)		UNSIGNED	No	None
          time_creazione_record	datetime			No	None
          time_modifica_record	datetime			No	None
          time_disattivazione_record	datetime			Yes	NULL
          time_eliminazione_record	datetime			Yes	NULL
          record_attivo	tinyint(3)
         * 
         */
        // dati per contestazione 
        $numero_contestazione = $values['numero_contestazione'];
        $data = $values['data'];
        $id_lib_norma = $values['id_lib_norma'];
        $id_lib_centro_costo = $values['id_centro_costo'];
        $importo = $values['importo'];
        // manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        // prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di contestazione
        $data_verbale_di_contestazione = array(
            "numero_contestazione" => $numero_contestazione,
            "data" => $data,
            "id_lib_norma" => $id_lib_norma,
            "id_lib_centro_costo" => $id_lib_centro_costo,
            "importo" => $importo,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita verbale di contestazione

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_verbale_di_contestazione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_verbale_di_contestazione, 'contestazione');
        //var_dump($data_verbale_di_contestazione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function verbaleDiContestazioneAction() {

        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_VerbaleDiContestazione();

            $id_processo = $this->_getParam('id', 'nid');

            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            $flusso_obj = new Flusso_db();
            $contestazione = $flusso_obj->getDatiVerbaleDiContestazione($id_processo);

            /*
             * bottone di anteprima stampa, è = true solo
             * se è presente nel db, altriemtni non lo visualizzo
             */
            $this->view->anteprima = false;
            if ($contestazione) {

                $this->view->anteprima = true;
                $form->populate(array(
                    'data' => $contestazione['data'],
                    'id_norma' => $contestazione['id_lib_norma'],
                    'id_centro_costo' => $contestazione['id_lib_centro_costo'],
                    'importo' => $contestazione['importo'],
                    'numero_contestazione' => $contestazione['numero_contestazione'],
                ));
            }

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_verbale_di_contestazione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'verbale-di-contestazione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->id_processo = $id_processo;
            $this->view->form = $form;
            $this->view->id_azione = $id_azione;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    protected function _process_var_doc($values) {

        // dati variabili
        $nomi_ispettori = $values['nomi_ispettori'];
        $qualifica_ispettori = $values['qualifica_ispettori'];
        $dichiarazioni = $values['dichiarazioni'];
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        $id_azione= $values['id_azione'];
        $id_processo=$values['id_processo'];
        // prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';

        $flusso_obj = new Flusso_db();

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione_eseguita = $flusso_obj->getAzioneEseguitaDaProcessoFase($id_processo, $id_azione); //id azione eseguita
        $id_azione_eseguita = $id_azione_eseguita['id_azione_eseguita'];
       
        //echo "id_azione_eseguita ". $id_azione_eseguita . " id azione ". $id_azione;
        
        $data1 = array(
            "id_azione_eseguita" => $id_azione_eseguita,
            "variabile" => 'nomi_ispettori',
            "valore" => $nomi_ispettori,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );
        $data2 = array(
            "id_azione_eseguita" => $id_azione_eseguita,
            "variabile" => 'qualifica_ispettori',
            "valore" => $qualifica_ispettori,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );
        $data3 = array(
            "id_azione_eseguita" => $id_azione_eseguita,
            "variabile" => 'dichiarazioni',
            "valore" => $dichiarazioni,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();
        require_once APPLICATION_PATH . '/models/Db/Db_Generico_db.php';
        $db_generico = new Db_Generico_db();
        
        $statement1='variabile="nomi_ispettori"'; 
        //echo $statement1;
        $db_generico->aggiorna($data1, 'var_doc', $statement1);
        $statement2='variabile="qualifica_ispettori"'; 
        $db_generico->aggiorna($data2, 'var_doc', $statement2);
        $statement3='variabile="dichiarazioni"'; 
        $db_generico->aggiorna($data3, 'var_doc', $statement3);

        //$ret = $flusso_obj->aggiornaVariabile($data1, $data1['variabile']);
        //$ret = $flusso_obj->aggiornaVariabile($data2, $data2['variabile']);
        //$ret = $flusso_obj->aggiornaVariabile($data3, $data3['variabile']);

        
        
        /*
          $ret = $db->inserisci($data1, 'var_doc');
          $ret = $db->inserisci($data2, 'var_doc');
          $ret = $db->inserisci($data3, 'var_doc');
         */
        //var_dump($data_verbale_di_contestazione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori        
    }

    public function stampaVerbaleDiContestazioneAction() {
        // action body
        $session = new Zend_Session_Namespace('id_persona');
        $id_persona = $session->id_persona;

        $this->_helper->_layout->setLayout('stampa');
        $id_processo = $this->_getParam('id', 'nid');

        $this->view->id_processo = $id_processo;
        $this->view->id_persona = $id_persona;
    }

    public function stampaBollettinoAction() {
        // action body
        $session = new Zend_Session_Namespace('id_persona');
        $id_persona = $session->id_persona;
        
        $this->_helper->_layout->setLayout('stampa');
        $id_processo = $this->_getParam('id', 'nid');
        
        $this->view->id_persona = $id_persona;
        $this->view->id_processo = $id_processo;
    }

    public function notificaContestazioneAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {

            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_NotificaContestazione();
            $id_processo = intval($this->_getParam('id', 'nid'));
            $id_azione = intval($this->_getParam('id_azione', 'nid'));
            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            $flusso_obj = new Flusso_db();
            $notifica_contestazione = $flusso_obj->getDatiNotificaContestazione($id_processo);

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            //se esiste già
            if ($notifica_contestazione) {
                $form->populate(array(
                    'data' => $notifica_contestazione['data'],
                ));
            }

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_notifica_contestazione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'notifica-contestazione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * metodo che gestisce e salva la notifica di contestazione
     *
     * manca la gestione di processo id
     * manca la gestione id azione
     * @param type $values
     * @return type 
     *
     *
     *
     *
     */
    public function _process_notifica_contestazione($values) {

        /**
         * 	id_notifica_contestazione	int(10)		UNSIGNED	No	None	AUTO_INCREMENT	 	 	 	 	 	 	
          id_azione_eseguita	int(10)		UNSIGNED	No	None
          data	date			No	None
          id_utente_creazione_record	int(10)		UNSIGNED	No	None
          id_utente_modifica_record	int(10)		UNSIGNED	No	None
          time_creazione_record	datetime			No	None
          time_modifica_record	datetime			No	None
          time_disattivazione_record	datetime			Yes	NULL
          time_eliminazione_record	datetime			Yes	NULL
          record_attivo
         */
        // dati per la notifica di contestazione 
        $data = $values['data'];
        // manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        // prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di contestazione
        $data_notifica_contestazione = array(
            "data" => $data,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_notifica_contestazione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_notifica_contestazione, 'notifica_contestazione');
        //var_dump($data_notifica_contestazione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori        
    }

    public function notificaContestazioneCreataAction() {
        // action body
    }

    public function verbaleDiRicorsoAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_VerbaleDiRicorso();
            $id_processo = $this->_getParam('id', 'nid');
            $id_azione = $this->_getParam('id_azione', 'nid');

            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            $flusso_obj = new Flusso_db();
            $verbale_di_ricorso = $flusso_obj->getDatiVerbaleDiRicorso($id_processo);
            $sessions = new Zend_Session_Namespace('id_persona');
            $id_persona = $sessions->id_persona;

            if ($verbale_di_ricorso) {

                $form->populate(array(
                    'numero_protocollo' => $verbale_di_ricorso['numero_protocollo'],
                    'data' => $verbale_di_ricorso['data'],
                    'id_persona_fisica' => $verbale_di_ricorso['id_persona_fisica'],
                    'dichiarazioni' => $verbale_di_ricorso['dichiarazioni'],
                ));
            } else {
                $form->populate(array(
                    'id_persona_fisica' => $id_persona,
                ));
            }

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_verbale_di_ricorso($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'verbale-di-ricorso');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * metodo per la gestione e la creazione del db di
     * azione eseguita e verbale di ricorso
     *
     * manca la gestione del processo id
     * manca la gestione id azione
     *
     * @param type $values
     * @return type 
     *
     *
     *
     *
     */
    protected function _process_verbale_di_ricorso($values) {
        /**
         * 	id_ricorso	int(10)		UNSIGNED	No	None	AUTO_INCREMENT	 	 	 	 	 	 	
          id_azione_eseguita	int(10)		UNSIGNED	No	None
          data	date			No	None
          numero_protocollo	varchar(255)	utf8_general_ci		Yes	NULL
          id_persona_fisica	int(10)		UNSIGNED	No	None
          dichiarazioni	text	utf8_general_ci		Yes	NULL
          id_utente_creazione_record	int(10)		UNSIGNED	No	None
          id_utente_modifica_record	int(10)		UNSIGNED	No	None
          time_creazione_record	datetime			No	None
          time_modifica_record	datetime			No	None
          time_disattivazione_record	datetime			Yes	NULL
          time_eliminazione_record	datetime			Yes	NULL
          record_attivo
         * 
         * 
         */
        // dati per il verbale di ricorso 
        $data = $values['data'];
        $numero_protocollo = $values['numero_protocollo'];
        $id_persona_fisica = $values['id_persona_fisica'];
        $dichiarazioni = $values['dichiarazioni'];
        // manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        // prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_verbale_ricorso = array(
            "data" => $data,
            "numero_protocollo" => $numero_protocollo,
            "id_persona_fisica" => $id_persona_fisica,
            "dichiarazioni" => $dichiarazioni,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_verbale_ricorso['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_verbale_ricorso, 'ricorso');
        //var_dump($data_verbale_ricorso);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function verbaleDiRicorsoCreatoAction() {
        
    }

    public function audizioneAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_Audizione();

            $id_processo = $this->_getParam('id', 'nid');
            $id_azione = intval($this->_getParam('id_azione', 'nid'));

            $sessions = new Zend_Session_Namespace('id_persona');
            $id_persona = $sessions->id_persona;

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
                'id_persona_fisica' => $id_persona,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_audizione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'audizione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * metodo per la gestione e la scrittura nel db di azione_eseguita e
     * adizione
     *
     * manca la gestione del processo id
     * manca la gestione id azione
     *
     * @param type $values
     * @return type 
     *
     *
     *
     *
     *
     */
    protected function _process_audizione($values) {

        /*
         * id_audizione	int(10)		UNSIGNED	No	None	AUTO_INCREMENT	 	 	 	 	 	 	
          id_azione_eseguita	int(10)		UNSIGNED	No	None
          data	date			No	None
          numero_protocollo	varchar(255)	utf8_general_ci		Yes	NULL
          id_persona_fisica	int(10)		UNSIGNED	No	None
          dichiarazioni	text	utf8_general_ci		Yes	NULL
          id_utente_creazione_record	int(10)		UNSIGNED	No	None
          id_utente_modifica_record	int(10)		UNSIGNED	No	None
          time_creazione_record	datetime			No	None
          time_modifica_record	datetime			No	None
          time_disattivazione_record	datetime			Yes	NULL
          time_eliminazione_record	datetime			Yes	NULL
          record_attivo
         */

        // dati per audizione
        $data = $values['data'];
        $numero_protocollo = $values['numero_protocollo'];
        $id_persona_fisica = $values['id_persona_fisica'];
        $dichiarazioni = $values['dichiarazioni'];

        // manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];

        // prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita      
        //preparo i dati per l'inserimento nel db di audizione
        $data_audizione = array(
            "data" => $data,
            "numero_protocollo" => $numero_protocollo,
            "id_persona_fisica" => $id_persona_fisica,
            "dichiarazioni" => $dichiarazioni,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );


        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_audizione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_audizione, 'audizione');
        //var_dump($data_audizione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function audizioneCreataAction() {
        // action body
    }

    public function valutazioneScrittiDifensiviAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_ValutazioneScrittiDifensivi();

            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_valutazione_scritti_difensivi($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'valutazione-scritti-difensivi');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * metodo per la gestione e scrittura nel db di azione_eseguita e
     * valutazione scritti difensivi
     *
     * manca la gestione del processo id
     * manca la gestione id azione
     *
     * @param type $values
     * @return type 
     *
     *
     *
     *
     *
     */
    protected function _process_valutazione_scritti_difensivi($values) {
        /**
         * 	id_valutazione_scritto_difensivo	int(10)		UNSIGNED	No	None	AUTO_INCREMENT	 	 	 	 	 	 	
          id_azione_eseguita	int(10)		UNSIGNED	No	None
          data	date			No	None
          numero_protocollo	varchar(255)	utf8_general_ci		Yes	NULL
          testo	text	utf8_general_ci		Yes	NULL
          id_utente_creazione_record	int(10)		UNSIGNED	No	None
          id_utente_modifica_record	int(10)		UNSIGNED	No	None
          time_creazione_record	datetime			No	None
          time_modifica_record	datetime			No	None
          time_disattivazione_record	datetime			Yes	NULL
          time_eliminazione_record	datetime			Yes	NULL
          record_attivo
         */
        // dati per valutazione scritti difensivi
        $data = $values['data'];
        $numero_protocollo = $values['numero_protocollo'];
        // manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        // prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento valutazione scritti difensivi
        $data_valutazione_scritti_difensivi = array(
            "data" => $data,
            "numero_protocollo" => $numero_protocollo,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita valutazione scritti difensivi

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_valutazione_scritti_difensivi['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_valutazione_scritti_difensivi, 'valutazione_scritto_difensivo');
        //var_dump($data_valutazione_scritti_difensivi);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function valutazioneScrittiDifensiviCreataAction() {
        // action body
    }

    public function verificaPagamentoCompletataAction() {
        // action body
    }

    /**
     * questo metodo gestisce il form di verifica pagamento
     *
     *
     *
     *
     */
    public function verificaPagamentoAction() {

        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_VerificaPagamento();

            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');
            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_verifica_pagamento($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'verifica-pagamento');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo gestisce e crea i db verifica pagamento
     * ed azione completata
     * manca la gestione id azione
     * manca gestione id processo
     *
     * @param type $values 
     *
     *
     *
     *
     */
    protected function _process_verifica_pagamento($values) {

        //dati per verifica pagamento
        $data = $values['data'];
        $numero_protocollo = $values['numero_protocollo'];
        //manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_verifica_pagamento = array(
            "data" => $data,
            "numero_protocollo" => $numero_protocollo,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_verifica_pagamento['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_verifica_pagamento, 'verifica_pagamento');
        //var_dump($data_verifica_pagamento);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function rapportoMancatoPagamentoAction() {

        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_RapportoMancatoPagamento();

            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');
            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));
            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_rapporto_mancato_pagamento($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'rapporto-mancato-pagamento');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo gestisce e aggiunge i db azione_eseguita
     * e rapporto mancato pagamento
     *
     * manca gestione process id
     * manca la gestione id azione
     *
     * @param type $values
     * @return type 
     *
     *
     *
     *
     *
     */
    protected function _process_rapporto_mancato_pagamento($values) {

        //dati rapporto mancato pagamento
        $data = $values['data'];
        $numero_protocollo = $values['numero_protocollo'];
        //manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_rapporto_mancato_pagamento = array(
            "data" => $data,
            "numero_protocollo" => $numero_protocollo,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_rapporto_mancato_pagamento['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_rapporto_mancato_pagamento, 'rapporto_mancato_pagamento');
        //var_dump($data_rapporto_mancato_pagamento);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function rapportoMancatoPagamentoCompletataAction() {
        // action body
    }

    public function ordinanzaDiIngiunzioneAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_OrdinanzaDiIngiunzione();
            // get id processo
            $id_processo = $this->_getParam('id', 'nid');
            // get id azione 
            $id_azione = $this->_getParam('id_azione', 'nid');
            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_ordinanza_di_ingiunzione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'ordianza-di-ingiunzione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo gestisce e crea i db di azione_eseguita
     * e ordinanza di inguinzione
     *
     * manca la gestione di processi
     * manca la gestione importo dati validi
     * manca la gestione dell'id centro di costo
     * manca la gestione id azione
     *
     * @param type $value 
     *
     *
     *
     *
     *
     *
     */
    protected function _process_ordinanza_di_ingiunzione($values) {
        /**
         * 	Type	Collation	Attributes	Null	Default	Extra	Action
          id_ingiunzione	int(10)		UNSIGNED	No	None	AUTO_INCREMENT
          id_azione_eseguita	int(10)		UNSIGNED	No	None
          data	date			No	None
          numero_ordinanza	varchar(255)	utf8_general_ci		Yes	NULL
          importo	decimal(10,2)			No	0.00
          id_lib_centro_costo	int(10)		UNSIGNED	No	None
          id_utente_creazione_record	int(10)		UNSIGNED	No	None
          id_utente_modifica_record	int(10)		UNSIGNED	No	None
          time_creazione_record	datetime			No	None
          time_modifica_record	datetime			No	None
          time_disattivazione_record	datetime			Yes	NULL
          time_eliminazione_record	datetime			Yes	NULL
          record_attivo
         */
        //dati per ordianza di ingiuinzione
        $data                = $values['data'];
        $id_lib_centro_costo = $values['id_lib_centro_costo'];
        $importo             = $values['importo'];
        $numero_ordinanza    = $values['numero_ordinanza'];
        //manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record  = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record      = $today; // aggiusta
        $time_modifica_record       = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record   = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_ordinanza_di_ingiunzione = array(
            "data" => $data,
            "id_lib_centro_costo" => $id_lib_centro_costo,
            "importo" => $importo,
            "numero_ordinanza" => $numero_ordinanza,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_ordinanza_di_ingiunzione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_ordinanza_di_ingiunzione, 'ingiunzione');
        //var_dump($data_ordinanza_di_ingiunzione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function ordinanzaDiIngiunzioneCompletataAction() {
        // action body
    }

    public function notificaOrdinanzaDiIngiunzioneCompletataAction() {
        // action body
    }

    public function notificaOrdinanzaDiIngiunzioneAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_NotificaOrdinanzaDiIngiunzione();
            // get id processo
            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_notifica_ordinanza_di_ingiunzione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'notifica-ordianza-di-ingiunzione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo gestisce il form notifica ordinanza di inguinzione
     * e la creazione nel db di ordinanza_di_ingiunzione e di
     * azione_eseguita
     *
     * manca la gestione dell'id processo
     * manca la gestione id azione
     *
     * @param type $values 
     *
     *
     *
     *
     */
    protected function _process_notifica_ordinanza_di_ingiunzione($values) {

        //dati per notifica ordianza di ingiuinzione
        $data = $values['data'];
        //manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_notifica_ordinanza_di_ingiunzione = array(
            "data" => $data,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_notifica_ordinanza_di_ingiunzione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_notifica_ordinanza_di_ingiunzione, 'notifica_ingiunzione');
        //var_dump($data_notifica_ordinanza_di_ingiunzione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    public function ordinanzaDiArchiviazioneAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_OrdinanzaDiArchiviazione();
            // get id processo
            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_ordinanza_di_archiviazione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'ordinanza-di-archiviazione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo gestisce e salva nel db il l'ordinanza di archiviazione
     * e l'azione_eseguita
     *
     * manca la gestione dell'id processo
     * manca la gestione id azione
     *
     * @param type $values
     * @return type 
     *
     *
     *
     *
     */
    protected function _process_ordinanza_di_archiviazione($values) {

        //dati rapporto mancato pagamento
        $data = $values['data'];
        $numero_ordinanza = $values['numero_ordinanza'];
        //manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_ordinanza_di_archiviazione = array(
            "data" => $data,
            "numero_ordinanza" => $numero_ordinanza,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_ordinanza_di_archiviazione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_ordinanza_di_archiviazione, 'archiviazione');
        //var_dump($data_ordinanza_di_archiviazione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    /**
     * Questo metodo crea il form di notifica ordiananza di archiviazione
     *
     *
     *
     *
     *
     *
     *
     */
    public function notificaOrdinanzaDiArchiviazioneAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_NotificaOrdinanzaDiArchiviazione();
            // id processo sanzionatorio
            $id_processo = $this->_getParam('id', 'nid');
            // id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_notifica_ordinanza_di_archiviazione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'notifica-ordinanza-di-archiviazione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo crea e gestisce il form e il db di notifica ordinanza
     * di archiviazione e azione_eseguita
     *
     * manca la gestione dell'id processo
     * manca la gestione id azione
     *
     * @param type $values
     * @return type 
     *
     *
     *
     *
     *
     *
     *
     */
    protected function _process_notifica_ordinanza_di_archiviazione($values) {

        //dati rapporto mancato pagamento
        $data = $values['data'];
        //manca il discorso dell'unità locale
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_notifica_ordinanza_di_archiviazione = array(
            "data" => $data,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_notifica_ordinanza_di_archiviazione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_notifica_ordinanza_di_archiviazione, 'notifica_archiviazione');
        //var_dump($data_notifica_ordinanza_di_archiviazione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori  
    }

    public function notificaOrdinanzaDiArchiviazioneCompletataAction() {
        // action body
    }

    public function invioRicorsoInTribunaleAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_InvioRicorsoInTribunale();
            // get id processo
            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_invio_ricorso_in_tribunale($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'invio-ricorso-in-tribunale');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo crea i db ricorso in tribunale e azione completata
     *
     * manca la gestione dell'id processo
     *      * manca la gestione id azione
     *
     * @param type $values
     * @return type 
     *
     *
     *
     */
    protected function _process_invio_ricorso_in_tribunale($values) {
        /**
         * id_tribunale	int(10)		UNSIGNED	No	None	AUTO_INCREMENT	 	 	 	 	 	 	
          id_azione_eseguita	int(10)		UNSIGNED	No	None
          data	date			No	None
          numero_protocollo	varchar(255)	utf8_general_ci		No	None
          data_esito	date			Yes	NULL
          numero_protocollo_esito	varchar(255)	utf8_general_ci		Yes	NULL
          tipo_esito	varchar(255)	utf8_general_ci		Yes	NULL
          id_utente_creazione_record	int(10)		UNSIGNED	No	None
          id_utente_modifica_record	int(10)		UNSIGNED	No	None
          time_creazione_record	datetime			No	None
          time_modifica_record	datetime			No	None
          time_disattivazione_record	datetime			Yes	NULL
          time_eliminazione_record	datetime			Yes	NULL
          record_attivo
         */
        //dati ricorso in tribunale
        $data = $values['data'];
        // numero protocollo
        $numero_protocollo = $values['numero_protocollo'];
        // data esito
        $data_esito = $values['data_esito'];
        //numero proto esito
        $numero_protocollo_esito = $values['numero_protocollo_esito'];
        // tipo esito: archiviato o pagamento
        $tipo_esito = $values['tipo_esito'];
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di verbale ricorso
        $data_invio_ricorso_tribunale = array(
            "data" => $data,
            "numero_protocollo" => $numero_protocollo,
            "data_esito" => $data_esito,
            "numero_protocollo_esito" => $numero_protocollo_esito,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_invio_ricorso_tribunale['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_invio_ricorso_tribunale, 'tribunale');
        //var_dump($data_invio_ricorso_tribunale);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori  
    }

    public function invioRicorsoInTribunaleCompletataAction() {
        // action body
    }

    /**
     * questo metodo gestisce il form per la sentenza di archiviazione tribunale
     *
     *
     *
     */
    public function invioSentenzaArchiviazioneTribunaleAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_InvioSentenzaDiArchiviazioneTribunale();
            // id processo
            $id_processo = $this->_getParam('id', 'nid');
            // id_azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_invio_sentenza_archiviazione_tribunale($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'invio-sentenza-archiviazione-tribunale');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * da finire
     *
     * @param type $values
     * @return type 
     *
     *
     *
     */
    protected function _process_invio_sentenza_archiviazione_tribunale($values) {

        //dati sentenza archiviazione tribunale
        $data = $values['data'];
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db di archiviazione tribunale
        $data_invio_sentenza_archiviazione_tribunale = array(
            "data" => $data,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo']; // si deve avere in input
        $id_azione = $values['id_azione']; // id azione eseguita 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_invio_sentenza_archiviazione_tribunale['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_invio_sentenza_archiviazione_tribunale, 'archiviazione_tribunale');
        //var_dump($data_invio_sentenza_archiviazione_tribunale);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori  
    }

    public function invioSentenzaArchiviazioneTribunaleCreataAction() {
        // action body
    }

    /**
     * questo metodo attiva la conclusione di un processo sanzionatorio
     *
     * manca la gestione errori
     *
     */
    public function conclusioneProcessoSanzionatorioAction() {

        // creo l'azione eseguita per quell'id processo
        $auth = Zend_Auth::getInstance();
        // se ho i permessi
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            // creazione form
            $form = new Application_Form_Conclusione();
            // preparazione dati 
            // prendo l'id del processo
            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_conclusione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        //$urlOptions = array('controller' => 'azioni', 'action' => 'conclusione');
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else { // non sono loggato
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo gestisce e crea il db azione_eseguita e conclusione
     * 
     * @param type $values 
     */
    protected function _process_conclusione($values) {

        // gestione dati
        $id_processo = $values['id_processo'];
        $id_azione = $values['id_azione'];
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $now = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $now);
        $time_creazione_record = $today; // aggiusta
        $time_modifica_record = $today; // aggiusta
        $time_disattivazione_record = null; // aggiusta
        $time_eliminazione_record = null; // aggiusta
        $record_attivo = 1;

        // preparo l'array per la scrittura nel db
        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        // includo le classi per il db
        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // conclusione
        $data = $values['data'];
        $motivo = $values['motivo'];
        // dati per la scrittura nel db
        $data_conclusione_processo_sanzionatorio = array(
            "data" => $data,
            "motivo" => $motivo,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // prendo id azione eseguita
        $data_conclusione_processo_sanzionatorio['id_azione_eseguita'] = $id;
        // scrittura nel db
        $ret = $db->inserisci($data_conclusione_processo_sanzionatorio, 'conclusione');

        return true;
    }

    /**
     * Questo metodo crea e gestisce il form di aqenzia di riscossionee
     *
     * manca il populate
     */
    public function invioAgenziaRiscossioneAction() {

        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_InvioAgenziaRiscossione();

            // get id processo
            $id_processo = $this->_getParam('id', 'nid');
            // get id azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $this->view->id_processo = $id_processo;

            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            $flusso_obj = new Flusso_db();
            //$accertamento = $flusso_obj->getDatiAccertmento($id_processo);

            /*
             * bottone di anteprima stampa, è = true solo
             * se è presente nel db, altriemtni non lo visualizzo
             */
            /* $this->view->anteprima = false;
              if ($accertamento) {

              $this->view->anteprima = true;

              $data_ora = explode(' ', $accertamento['data_ora']);
              $accertamento['data_accertamento'] = $data_ora[0];
              $accertamento['ora_accertamento'] = 'T' . $data_ora[1];

              $form->populate(array(
              'id_accertamento' => $accertamento['id_accertamento'],
              'numero_verbale' => $accertamento['numero_verbale'],
              'data_accertamento' => $accertamento['data_accertamento'],
              'ora_accertamento' => $accertamento['ora_accertamento'],
              'motivo' => $accertamento['motivo'],
              'evidenze' => $accertamento['evidenze'],
              'id_lib_comune' => $accertamento['id_lib_comune'],
              'indirizzo' => $accertamento['indirizzo']
              ));
              }
             */
            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_invio_agenzia_riscossione($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'invio-agenzia-riscossione');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo si occupa della scrittura nel db di azione_eseguita
     * e di agenzia_riscossione
     * 
     * manca gestione id_azione
     * 
     * @param type $values
     * @return type 
     */
    protected function _process_invio_agenzia_riscossione($values) {

        //dati rapporto mancato pagamento
        $data = $values['data'];
        $numero_protocollo = $values['numero_protocollo'];
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today;
        $time_modifica_record = $today;
        $time_disattivazione_record = null;
        $time_eliminazione_record = null;
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db agenzia riscossione
        $data_invio_agenzia_riscossione = array(
            "data" => $data,
            "numero_protocollo" => $numero_protocollo,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo'];  // id processo sanzionatorio
        $id_azione = $values['id_azione']; // id azione 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_invio_agenzia_riscossione['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_invio_agenzia_riscossione, 'agenzia_riscossione');
        //var_dump($data_invio_agenzia_riscossione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

    /**
     *  Questo metodo gestisce il form pagamento
     * 
     * manca il populate
     */
    public function pagamentoAction() {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            // get id utente corrente
            $id = $auth->getIdentity()->id_utente;
            $form = new Application_Form_Pagamento();
            // get id processo
            $id_processo = $this->_getParam('id', 'nid');
            // id _azione
            $id_azione = $this->_getParam('id_azione', 'nid');

            $this->view->id_processo = $id_processo;

            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            $flusso_obj = new Flusso_db();
            $pagamento = $flusso_obj->getDatiPagamento($id_processo);

            //se il pagamento è già stato effettuato
            if ($pagamento) {

                $form->populate(array(
                    'data' => $pagamento['data'],
                ));
            }

            $form->populate(array(
                'id_admin' => $id,
                'id_processo' => $id_processo,
                'id_azione' => $id_azione,
            ));

            $request = $this->getRequest();

            if ($request->isPost()) {
                if ($form->isValid($request->getPost())) {

                    if ($this->_process_pagamento($form->getValues())) {
                        $urlOptions = array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => $id_processo);
                        //$this->view->notifica = '<style>.notifica{ background-color:green; padding:2px;}</style>Azione andata a buon fine.';
                        $this->_helper->redirector->gotoRoute($urlOptions, 'gestione');
                    } else {
                        $urlOptions = array('controller' => 'azioni', 'action' => 'pagamento');
                        $this->view->notifica = '<span style="padding:2px;">Ops, si è verificato un errore.</span>';
                        //$this->_helper->redirector->gotoRoute($urlOptions,'azioni');
                    }
                }
            }
            $this->view->form = $form;
            $this->view->id_processo = $id_processo;
        } else {
            $this->_forward('index', 'Auth');
        }
    }

    /**
     * Questo metodo si occupa della scrittura nel db di pagamento
     * 
     * manca la gestione di id_azione ( sarebbe 19 e 20 o altro ma fa solo 19 per ora... ) 
     * 
     * @param type $values
     * @return type 
     */
    protected function _process_pagamento($values) {

        //dati rapporto mancato pagamento
        $data = $values['data'];
        $id_utente_creazione_record = $values['id_admin'];
        $id_utente_modifica_record = $values['id_admin'];
        //prende la data di oggi e la formatta
        $timestamp = time();
        $today = mktime(date("H", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp));
        $today = date("Y-m-d H:i:s", $today);
        $time_creazione_record = $today;
        $time_modifica_record = $today;
        $time_disattivazione_record = null;
        $time_eliminazione_record = null;
        $record_attivo = 1;

        //preparo i dati per l'inserimento nel db agenzia riscossione
        $data_pagamento = array(
            "data" => $data,
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $time_creazione_record, // aggiusta
            "time_modifica_record" => $time_modifica_record, // aggiusta
            "time_disattivazione_record" => $time_disattivazione_record, // aggiusta
            "time_eliminazione_record" => $time_eliminazione_record, // aggiusta
            "record_attivo" => $record_attivo,
        );

        // preparo i dati per azione_eseguita
        $id_processo = $values['id_processo'];  // id processo sanzionatorio
        $id_azione = $values['id_azione']; // id azione 

        $data_azione_eseguita = array(
            "id_processo_sanzionatorio" => $id_processo,
            "id_azione" => $id_azione,
            "id_utente_esecutore" => $id_utente_creazione_record,
            "time_esecuzione_azione" => $today,
            "modificabile" => 0, //  non modificabile
            "id_utente_creazione_record" => $id_utente_creazione_record,
            "id_utente_modifica_record" => $id_utente_modifica_record,
            "time_creazione_record" => $today,
            "time_modifica_record" => $today,
            "time_disattivazione_record" => null,
            "time_eliminazione_record" => null,
            "record_attivo" => $record_attivo,
        );

        require_once APPLICATION_PATH . '/models/Db/Azioni_db.php';
        $db = new Azioni_db();

        // creo azione eseguita
        $id = $db->inserisciLastID($data_azione_eseguita, 'azione_eseguita');

        // inserimento accertamento nel db
        $data_pagamento['id_azione_eseguita'] = $id;
        $ret = $db->inserisci($data_pagamento, 'pagamento');
        //var_dump($data_invio_agenzia_riscossione);
        //var_dump($data_azione_eseguita);

        return true; // non ho incontrato errori
    }

}

